Public Class NInasistencias
    Public Function cargarInasistencia(ByVal alumno As Entidades.EAlumno, ByVal list As List(Of Entidades.EInasistencia)) As Boolean
        'utiliza la capa de datos
        Dim oDatos As New Datos.DInasistencia
        Dim band As Boolean
        Try
            For Each inasistencias As Entidades.EInasistencia In list
                If oDatos.buscarInasistenciaPorAlumno(alumno, list) Then
                    Throw New ArgumentException("La Inasistencia del alumno legajo: " & alumno.Num_Legajo & " con fecha : " & inasistencias.fecha & " esta cargada.")
                    'MsgBox("la Inasistencia del alumno legajo: " & alumno.Num_Legajo & " con fecha : " & inasistencias.fecha & " esta cargada.", MsgBoxStyle.Information)
                    band = False
                    Exit Try
                End If
            Next
            band = oDatos.cargarInasistencia(alumno, list)
        Catch ex As Exception
            Throw New ArgumentException(ex.Message)
        Finally
            oDatos = Nothing
        End Try
        Return band
    End Function

    Public Function modificarInasistencia(ByVal legajo As Integer, ByVal lista As List(Of Entidades.EInasistencia)) As Boolean
        'utiliza la capa de datos
        Dim oDatos As New Datos.DInasistencia
        Dim band As Boolean
        Try
            band = oDatos.modificarInasistencia(legajo, lista)
        Catch ex As Exception
            Throw New ArgumentException(ex.Message)
        Finally
            oDatos = Nothing
        End Try
        Return band
    End Function

    Public Function borrarInasistencia(ByVal legajo As Integer, ByVal lista As List(Of Entidades.EInasistencia)) As Boolean
        'utiliza la capa de datos
        Dim oDatos As New Datos.DInasistencia
        Dim band As Boolean
        Try
            band = oDatos.borrarInasistencia(legajo, lista)
        Catch ex As Exception
            Throw New ArgumentException(ex.Message)
        Finally
            oDatos = Nothing
        End Try
        Return band
    End Function
  
    Public Function buscarInasistenciasPorAlumno(ByVal legajo As Integer) As List(Of Entidades.EInasistencia)
        Dim oDatos As New Datos.DInasistencia
        Try
            Return oDatos.buscarInasistenciaPorAlumno(legajo)
        Catch ex As Exception
            Throw New ArgumentException(ex.Message)
        Finally
            oDatos = Nothing
        End Try
    End Function

    'SOBRECARGADO: Busca inasistencias del alumno por trimestre
    Public Function buscarInasistenciasPorAlumno(ByVal legajo As Integer, ByVal trimestre As Integer, ByVal ciclo As Integer) As List(Of Entidades.EInasistencia)
        Dim oDatos As New Datos.DInasistencia
        Try
            Return oDatos.buscarInasistenciaPorAlumno(legajo, trimestre, ciclo)
        Catch ex As Exception
            Throw New ArgumentException(ex.Message)
        Finally
            oDatos = Nothing
        End Try
    End Function

    Public Function buscarInasistenciaPorAlumno(ByVal alumno As Entidades.EAlumno, ByVal lista As List(Of Entidades.EInasistencia)) As Boolean
        Dim oDatos As New Datos.DInasistencia
        Dim band As Boolean
        Try
            For Each inasistencias As Entidades.EInasistencia In lista
                If oDatos.buscarInasistenciaPorAlumno(alumno, lista) Then
                    band = True
                    Exit Try
                End If
                band = False
                Exit Try
            Next
        Catch ex As Exception
            Throw New ArgumentException(ex.Message)
        Finally
            oDatos = Nothing
        End Try
        Return band
    End Function

    Public Function buscarInasistenciaPorAlumno1(ByVal alumno As Integer, ByVal fecha As Date) As Entidades.EInasistencia
        Dim oDatos As New Datos.DInasistencia
        Try

            Return oDatos.buscarInasistenciaPorAlumno1(alumno, fecha)

        Catch ex As Exception
            Throw New ArgumentException(ex.Message)
        Finally
            oDatos = Nothing
        End Try
    End Function

    Public Function buscarInasistenciaPorAlumno1(ByVal alumno As Integer) As List(Of Entidades.EInasistencia)
        Dim oDatos As New Datos.DInasistencia
        Try

            Return oDatos.buscarInasistenciaPorAlumno1(alumno)

        Catch ex As Exception
            Throw New ArgumentException(ex.Message)
        Finally
            oDatos = Nothing
        End Try
    End Function
End Class
